package com.sg.dto.biz.app.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc ImplementBudgetAddOrSubtractDataAnalyseComReqDto
 * @使用场景
 */
@Data
public class ImplementBudgetAddOrSubtractDataAnalyseComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 关联归属主体类型编码 TARGET:目标 TARGET_CATEGORY:目标分类 OBJECTIVE:指标 DEPT:部门
     */
    @NotNull(message = "关联归属主体类型编码不能为空")
    @ApiModelProperty("关联归属主体类型编码")
    private String accountObjectTypeCode;

    /**
     * 关联归属主体ID
     */
    @NotNull(message = "关联归属主体ID不能为空")
    @ApiModelProperty("关联归属主体ID")
    private String accountObjectId;

    /**
     * 冗余评价模板ID
     */
    @NotNull(message = "冗余评价模板ID不能为空")
    @ApiModelProperty("冗余评价模板ID")
    private String evaluationTemplateId;

    /**
     * 周期模式类型编码 FATHER_SON_CYCLE:父子周期 SINGLE_CYCLE:单周期 IRREGULAR_CYCLE:不规则周期
     */
    @NotNull(message = "周期模式类型编码不能为空")
    @ApiModelProperty("周期模式类型编码")
    private String periodicModeTypeCode;

    /**
     * 收支类型 INCOME:收入 SPENDING:支出
     */
    @NotNull(message = "收支类型不能为空")
    @ApiModelProperty("收支类型")
    private String billTypeCode;

}
